#ifndef BOARD_H
#define BOARD_H

#include "card.h"
#include "one_card.h"

struct board {
    int desk_count, player_count, dir;
    int stock_pile_count, discard_count;
    card *stock_pile;
    card *discard;
    struct player *next_player;
    card top_card;
    int force_draw;
    int round_count;
};

// Generate all cards in stock_pile
// Shuffle all cars
void board_init(struct board *board, struct args args);

// Clear discard & shuffle & append to stock_pile
void board_reshuffle(struct board *board);

card board_pop_card(struct board *board);

void board_push_card(struct board *board, card c);

void board_next_player(struct board *board);

void board_reset(struct board *board);

card board_top_card(struct board *board);

bool board_can_play(struct board *board, card c);

void board_destroy(struct board *board);

#endif
